package com.youlai.boot.modules.game.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.youlai.boot.modules.game.model.entity.GameCategory;
import com.youlai.boot.modules.game.model.form.GameCategoryForm;

import java.util.List;

/**
 * 游戏分类服务接口
 *
 * @author 有来技术团队
 */
public interface GameCategoryService extends IService<GameCategory> {

    /**
     * 获取分类分页列表
     *
     * @param pageNum  页码
     * @param pageSize 每页大小
     * @param keywords 关键字
     * @return 分类分页列表
     */
    Page<GameCategory> getCategoryPage(Integer pageNum, Integer pageSize, String keywords);

    /**
     * 获取所有分类
     *
     * @return 分类列表
     */
    List<GameCategory> getAllCategories();

    /**
     * 根据ID获取分类
     *
     * @param id 分类ID
     * @return 分类
     */
    GameCategory getCategoryById(Long id);

    /**
     * 新增分类
     *
     * @param formData 表单数据
     * @return 分类ID
     */
    Long addCategory(GameCategoryForm formData);

    /**
     * 修改分类
     *
     * @param id 分类ID
     * @param formData 表单数据
     * @return 是否成功
     */
    boolean updateCategory(Long id, GameCategoryForm formData);

    /**
     * 删除分类
     *
     * @param ids 分类ID列表
     * @return 是否成功
     */
    boolean deleteCategories(List<Long> ids);
} 